#pragma once
#include "IGameState.h"

#include "..\..\SGD Wrappers\SGD_Geometry.h"
#include "..\..\SGD Wrappers\SGD_Handle.h"
#include <sstream>

class ProfileState : public IGameState
{
private:
	/**********************************************************/
	// SINGLETON!
	ProfileState(void) = default;
	virtual ~ProfileState(void) = default;

	ProfileState(const ProfileState&) = delete;
	ProfileState& operator= (const ProfileState&) = delete;

	// Assets
	SGD::HTexture hPauseImage = SGD::INVALID_HANDLE;

	// Cursor
	int nCursor;

	// Save Data
	const char* cSave1Loc, * cSave2Loc, * cSave3Loc;

	std::wostringstream filePathStream;
	int iLevel1, iLevel2, iLevel3;
	int iVillager1, iVillager2, iVillager3;

public:
	/**********************************************************/
	// Singleton Accessor
	static ProfileState* GetInstance(void);

	virtual void Enter();
	virtual void Exit();
	virtual bool Update(float dt);
	virtual void Render();

	void Save(int fileNum);
	void Load(int fileNum);
	void Delete(int fileNum);
	void LoadSaves();

	void DrawSaveMenu(SGD::Point pLoc, int saveNum, unsigned char ucColor, unsigned char ucDeleteColor);

};

